package com.erp.entity.purchase;

import com.erp.entity.goods.GoodsPriceStrategy;
import com.erp.entity.goods.MultipleUnit;
import com.erp.entity.goods.Unit;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author :qinya
 * @PackageName:com.erp.entity.purchase
 * @ClassName: InquiryDetail
 * @Description: 询价单明细
 * @date : 2025/6/30,8:41
 */
public class InquiryDetail {

    private Integer inquiryDetailId; // 询价单详情ID，主键
    private Integer companyId; // 公司ID，关联公司表
    private String inquiryCode; // 询价单编号，关联主表
    private String goodsCode; // 商品ID，关联商品表
    private Integer multipleUnitId; // 多单位ID，关联单位表
    private Integer singleUnitId; // 单单位ID，关联单位表
    private Integer quantity; // 商品数量
    private BigDecimal quotePrice; // 不含税单价
    private Integer discountRate; // 折扣率(百分比)
    private Integer rate; // 税率(百分比)
    private String remark; // 备注信息
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date validEndDate;//有效报价截止日期

    // 冗余字段
    private Integer providerId;//供应商ID
    private String providerName; // 供应商名称

    // 冗余商品字段
    private String goodsName; // 商品名称
    private String multipleUnitName; // 多单位名称
    private Integer basicUnitId; // 基本单位ID
    private String basicUnitName; // 基本单位名称
    private String singleUnitName; // 单单位名称
    private String goodsSpecification; // 商品规格
    private String brandName; // 商品品牌
    private String imgMainUrl; // 商品主图路径
    private String goodsRemark; // 商品备注
    private Integer basicQuantity; // 基本数量
    private List<MultipleUnit> multipleUnitList; // 多单位列表
    private Unit unit; // 单单位
    private List<GoodsPriceStrategy> goodsPriceStrategies; // 价格策略列表


    public Integer getInquiryDetailId() {
        return inquiryDetailId;
    }

    public void setInquiryDetailId(Integer inquiryDetailId) {
        this.inquiryDetailId = inquiryDetailId;
    }

    public Integer getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }

    public String getInquiryCode() {
        return inquiryCode;
    }

    public void setInquiryCode(String inquiryCode) {
        this.inquiryCode = inquiryCode;
    }

    public String getGoodsCode() {
        return goodsCode;
    }

    public void setGoodsCode(String goodsCode) {
        this.goodsCode = goodsCode;
    }

    public Integer getSingleUnitId() {
        return singleUnitId;
    }

    public void setSingleUnitId(Integer singleUnitId) {
        this.singleUnitId = singleUnitId;
    }

    public Integer getQuantity() {
        return quantity;
    }

    public void setQuantity(Integer quantity) {
        this.quantity = quantity;
    }

    public BigDecimal getQuotePrice() {
        return quotePrice;
    }

    public void setQuotePrice(BigDecimal quotePrice) {
        this.quotePrice = quotePrice;
    }

    public Integer getDiscountRate() {
        return discountRate;
    }

    public void setDiscountRate(Integer discountRate) {
        this.discountRate = discountRate;
    }

    public Integer getRate() {
        return rate;
    }

    public void setRate(Integer rate) {
        this.rate = rate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Date getValidEndDate() {
        return validEndDate;
    }

    public void setValidEndDate(Date validEndDate) {
        this.validEndDate = validEndDate;
    }

    public Integer getProviderId() {
        return providerId;
    }

    public void setProviderId(Integer providerId) {
        this.providerId = providerId;
    }

    public Integer getMultipleUnitId() {
        return multipleUnitId;
    }

    public void setMultipleUnitId(Integer multipleUnitId) {
        this.multipleUnitId = multipleUnitId;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getMultipleUnitName() {
        return multipleUnitName;
    }

    public void setMultipleUnitName(String multipleUnitName) {
        this.multipleUnitName = multipleUnitName;
    }

    public Integer getBasicUnitId() {
        return basicUnitId;
    }

    public void setBasicUnitId(Integer basicUnitId) {
        this.basicUnitId = basicUnitId;
    }

    public String getBasicUnitName() {
        return basicUnitName;
    }

    public void setBasicUnitName(String basicUnitName) {
        this.basicUnitName = basicUnitName;
    }

    public String getSingleUnitName() {
        return singleUnitName;
    }

    public void setSingleUnitName(String singleUnitName) {
        this.singleUnitName = singleUnitName;
    }

    public String getGoodsSpecification() {
        return goodsSpecification;
    }

    public void setGoodsSpecification(String goodsSpecification) {
        this.goodsSpecification = goodsSpecification;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public String getImgMainUrl() {
        return imgMainUrl;
    }

    public void setImgMainUrl(String imgMainUrl) {
        this.imgMainUrl = imgMainUrl;
    }

    public String getGoodsRemark() {
        return goodsRemark;
    }

    public void setGoodsRemark(String goodsRemark) {
        this.goodsRemark = goodsRemark;
    }

    public Integer getBasicQuantity() {
        return basicQuantity;
    }

    public void setBasicQuantity(Integer basicQuantity) {
        this.basicQuantity = basicQuantity;
    }

    public List<MultipleUnit> getMultipleUnitList() {
        return multipleUnitList;
    }

    public void setMultipleUnitList(List<MultipleUnit> multipleUnitList) {
        this.multipleUnitList = multipleUnitList;
    }

    public Unit getUnit() {
        return unit;
    }

    public void setUnit(Unit unit) {
        this.unit = unit;
    }

    public List<GoodsPriceStrategy> getGoodsPriceStrategies() {
        return goodsPriceStrategies;
    }

    public void setGoodsPriceStrategies(List<GoodsPriceStrategy> goodsPriceStrategies) {
        this.goodsPriceStrategies = goodsPriceStrategies;
    }

    public String getProviderName() {
        return providerName;
    }

    public void setProviderName(String providerName) {
        this.providerName = providerName;
    }
}
